Technical Field
The present disclosure relates to storage systems and, more specifically, to a metadata organization for efficient storage and retrieval of data in a storage system.
Background Information
A storage system typically includes one or more storage devices, such as disks embodied as hard disk drives (HDDs) or solid state drives (SSDs), into which information may be entered, and from which information may be obtained, as desired. The storage system may implement a high-level module, such as a file system, to logically organize the information stored on the disks as storage objects, such as files or logical units (LUNs). Each storage container may be implemented as a set of data structures, such as data blocks that store data for the storage containers and metadata blocks that describe the data of the storage containers. For example, the metadata may describe, e.g., identify, storage locations on the disks for the data.
In a traditional file system, large amounts of metadata updates (changes) may be incurred when processing input/output (I/O) requests, such as read or write requests. That is, a relatively large amount of metadata may be written in proportion to an amount of data (to be written) for the associated I/O request(s), i.e., high write amplification. For example, in the case of a write request having write data that changes data (user data) of a LUN, processing of the request at the storage system may require many accesses to the disks to acquire and update one or more indirect blocks (metadata) associated with the changed user data. Updating of the indirect blocks may result in large amounts of metadata changes, thereby causing high write amplification. In the case of a read request, substantial latency may be incurred if access to metadata on disk is required before accessing requested user data on disk. For instance, if an average of two disk accesses per read request is required, the resulting read amplification reduces performance by half. In addition, if the I/O request requires opening of a directory to access file system metadata, many disk accesses may be required, thereby causing high read amplification. By reducing the amount of metadata needed to process the I/O requests and maintaining a substantial amount of that needed metadata in a memory, e.g., RAM, of the storage system, the amount of disk accesses (read and write) may be reduced, thus reducing both read and write amplification.